package com.lyy.lottery.common.util;


import org.springframework.util.StringUtils;

import java.util.regex.Pattern;

public class RegexUtil {

    /**
     * 邮箱：以字母或数字开头，可以包含点、下划线、短横线等符号，且必须包含“@”符号，后面跟随的域名部分由字母或数字组成，长度限制在1到63个字符之间，最后以字母或数字结尾
     * 本地部分：
     *      [a-z0-9]+ ：以字母或数字开头
     *      ([._\\-]*[a-z0-9])* ：可含. _ \\ -，但不能连续出现
     * 域名部分：
     *      ([a-z0-9]+[-a-z0-9]*[a-z0-9]+.) 由字母、数字、连字符-组成，且必须以字母或数字结尾
     *      {1,63} 域名可以包含多个子域名，每个域名之间用.分隔，最多63个子域名
     *      [a-z0-9]+ 顶级域名必须以字母或数字结尾
     */
    public static boolean checkMail(String content) {
        if (!StringUtils.hasText(content)) {
            return false;
        }
        String regex = "^[a-z0-9]+([._\\\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$";
        return Pattern.matches(regex, content);
    }


    //⼿机号码：以数字1开头，第二位数字为3到9之间的任意一个数字，后面跟随9个任意数字，总共11位数字
    public static boolean checkMobile(String content) {
        if (!StringUtils.hasText(content)) {
            return false;
        }
        String regex = "^1[3|4|5|6|7|8|9][0-9]{9}$";
        return Pattern.matches(regex, content);
    }

    //密码：由字母（大小写均可）和数字组成，长度在6到12位之间
    public static boolean checkPassword(String content){
        if (!StringUtils.hasText(content)) {
            return false;
        }
        String regex= "^[0-9A-Za-z]{6,12}$";
        return Pattern.matches(regex, content);
    }
}